package com.huike.clues.service.impl;

import com.github.pagehelper.PageInfo;
import com.huike.clues.domain.TbCourse;
import com.huike.clues.mapper.TbCourseMapper;
import com.huike.clues.service.ITbCourseService;
import com.huike.common.constant.HttpStatus;
import com.huike.common.core.page.TableDataInfo;
import com.huike.common.utils.DateUtils;
import com.huike.common.utils.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * @Description TODO
 * @Author hzh
 * @Date 2023-07-12 13:13
 */
@Service
public class TbCourseServiceImpl implements ITbCourseService {

    @Resource
    private TbCourseMapper tbCourseMapper;

    /**
     * 查询课程管理列表
     *
     * @param tbCourse
     * @return
     */
    @Override
    public TableDataInfo list(TbCourse tbCourse) {
        //获取课程列表
        List<TbCourse> list = tbCourseMapper.list(tbCourse);

        //构建课程分页数据对象
        TableDataInfo returnInfo = new TableDataInfo<>();
        returnInfo.setCode(HttpStatus.SUCCESS);
        returnInfo.setMsg("查询成功");
        returnInfo.setRows(list);
        returnInfo.setTotal(new PageInfo(list).getTotal());

        return returnInfo;
    }

    /**
     * 获取课程管理详细信息 回显
     *
     * @param id
     * @return
     */
    @Override
    public TbCourse findCourseByCourseId(Long id) {
        return tbCourseMapper.findCourseByCourseId(id);
    }

    /**
     * 课程下拉列表
     *
     * @param tbCourse
     * @return
     */
    @Override
    public List<TbCourse> listSelect(TbCourse tbCourse) {
        return tbCourseMapper.listSelect(tbCourse);
    }

    /**
     * 新增课程管理
     *
     * @param tbCourse
     */
    @Override
    public void insert(TbCourse tbCourse) {
        //导入当前时间
        tbCourse.setCreateTime(DateUtils.getNowDate());
        //随机生成8位code值
        tbCourse.setCode(StringUtils.getRandom(8));

        tbCourseMapper.insert(tbCourse);
    }

    /**
     * 修改课程管理
     * @param tbCourse
     */
    @Override
    public void update(TbCourse tbCourse) {
        tbCourseMapper.update(tbCourse);
    }

    /**
     * 删除课程管理
     * @param ids
     * @return
     */
    @Override
    @Transactional//开启事务
    public int deleteTbCoursesByIds(Long[] ids) {
        //响应 删除的行数
        return tbCourseMapper.deleteTbCoursesByIds(ids);
    }
}
